package com.xxg.base.shell;//package com.xxg.base.shell;
//
///**
// * @ClassName RemoteExecuteCommand
// * @Description //Tudo
// * @Author huikai
// * @Date 2019/6/2111:04
// * @Param
// * @return
// **/
//
//import ch.ethz.ssh2.Connection;
//import ch.ethz.ssh2.Session;
//import ch.ethz.ssh2.StreamGobbler;
//import org.apache.commons.lang3.StringUtils;
//
//import java.io.*;
//
///**
// * 远程执行linux的shell script
// *
// * @author Ickes
// * @since V0.1
// */
//public class RemoteExecuteCommand {
//    //字符编码默认是utf-8
//    private static String DEFAULTCHART = "UTF-8";
//    private Connection conn;
//    private String ip;
//    private String userName;
//    private String userPwd;
//
//    public RemoteExecuteCommand(String ip, String userName, String userPwd) {
//        this.ip = ip;
//        this.userName = userName;
//        this.userPwd = userPwd;
//    }
//
//
//    public RemoteExecuteCommand() {
//
//    }
//
//    /**
//     * 远程登录linux的主机
//     *
//     * @return 登录成功返回true，否则返回false
//     * @author Ickes
//     * @since V0.1
//     */
//    public Boolean login() {
//        boolean flg = false;
//        try {
//            conn = new Connection(ip);
//            conn.connect();//连接
//            flg = conn.authenticateWithPassword(userName, userPwd);//认证
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return flg;
//    }
//
//    /**
//     * @param cmd 即将执行的命令
//     * @return 命令执行完后返回的结果值
//     * @author Ickes
//     * 远程执行shll脚本或者命令
//     * @since V0.1
//     */
//    public String execute(String cmd) {
//        String result = "";
//        try {
//            if (login()) {
//                Session session = conn.openSession();//打开一个会话
//                session.execCommand(cmd);//执行命令
//                result = processStdout(session.getStdout(), DEFAULTCHART);
//                //如果为得到标准输出为空，说明脚本执行出错了
//                if (StringUtils.isBlank(result)) {
//                    result = processStdout(session.getStderr(), DEFAULTCHART);
//                }
//                conn.close();
//                session.close();
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return result;
//    }
//
//
//    /**
//     * @param cmd 即将执行的命令
//     * @return 命令执行成功后返回的结果值，如果命令执行失败，返回空字符串，不是null
//     * @author Ickes
//     * 远程执行shll脚本或者命令
//     * @since V0.1
//     */
//    public String executeSuccess(String cmd) {
//        String result = "";
//        try {
//            if (login()) {
//                Session session = conn.openSession();//打开一个会话
//                session.execCommand(cmd);//执行命令
//                result = processStdout(session.getStdout(), DEFAULTCHART);
//                conn.close();
//                session.close();
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return result;
//    }
//
//    /**
//     * 解析脚本执行返回的结果集
//     *
//     * @param in      输入流对象
//     * @param charset 编码
//     * @return 以纯文本的格式返回
//     * @author Ickes
//     * @since V0.1
//     */
//    private String processStdout(InputStream in, String charset) {
//        InputStream stdout = new StreamGobbler(in);
//        StringBuffer buffer = new StringBuffer();
//        ;
//        try {
//            BufferedReader br = new BufferedReader(new InputStreamReader(stdout, charset));
//            String line = null;
//            while ((line = br.readLine()) != null) {
//                buffer.append(line + "\n");
//            }
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return buffer.toString();
//    }
//
//    public static void setCharset(String charset) {
//        DEFAULTCHART = charset;
//    }
//
//    public Connection getConn() {
//        return conn;
//    }
//
//    public void setConn(Connection conn) {
//        this.conn = conn;
//    }
//
//    public String getIp() {
//        return ip;
//    }
//
//    public void setIp(String ip) {
//        this.ip = ip;
//    }
//
//    public String getUserName() {
//        return userName;
//    }
//
//    public void setUserName(String userName) {
//        this.userName = userName;
//    }
//
//    public String getUserPwd() {
//        return userPwd;
//    }
//
//    public void setUserPwd(String userPwd) {
//        this.userPwd = userPwd;
//    }
//
//
//}